Changing the data structure which an application program in a computer system uses to access database systems

ABSTRACT

Systems and methods for changing a data structure, which an application program in a computer system uses to access database systems, are provided. According to an exemplary method, an application program communicates with a first database system to store entries in a source table having a first data structure. The method further includes creating a destination table in the first database system, such that the destination table has a second data structure (different from the first data structure). The method further includes recording the type of change for those entries in the source table, which are changed when the application program communicates with the source table. The method further includes copying the destination table into a second database system (the second data structure being retained in a copy of the destination table). The method further includes copying the source table in the second database system (the first data structure being retained in a copy of the source table). The method further includes converting the entries in the copy of the source table from the first data structure to the second data structure (the converted entries being stored in the copy of the destination table). The method further includes adjusting the changed entries in the source table to the copy of the source table, wherein the changed entries are copied from the source table as changed entries to the copy of the source table.

FIELD OF THE INVENTION

[0001] The present invention relates generally to computer systems withan application program and a database, and in particular the inventionrelates to the changing of the data structures in these systems by meansof upgrade.

BACKGROUND OF THE INVENTION

[0002] Relational databases are used for storing data from applicationprograms. Data are structured in tables. As used below, a databasesystem contains a database management system.

[0003] Technological progress and changing demands from customersrequire that the data structures in the database system be changed fromtime to time. An example which may be mentioned at this point by way ofillustration is simply the extension of existing tables and theconversion of texts into other languages.

[0004] Acceptance of the application programs is dependent, inter alia,on their availability: for many programs, 24-hour availability isdemanded 365 days a year. During changing, restrictions arise for thecommunication between the application program and the database system;in many cases, communication has to be interrupted completely.

[0005] Down times are undesirable but have technical conditionality,since a change to the data structure cannot be made simultaneously withthe writing or alteration of the data contents. taneously with thewriting or alteration of the data contents.

[0006] The sizes of the tables can be in the region of several gigabytesand can require down times of several hours.

[0007] It is the object to provide methods, system and computer programsfor changing the data structure which allow the down times to beshortened.

[0008] The following prints describe changes in database systems: U.S.Pat. Nos. 6,141,664, 6,122,630, 6,205,451, 5,893,119, DE 198 03 697 A1,and DE 197 34 413.

SUMMARY OF THE INVENTION

[0009] The present invention provides a method for transferring datafrom a first database system (original system) to a second databasesystem (upgrade system) with an altered structure (upgrade).

[0010] Before the method is executed, an application programcommunicates with the first database system and, following execution ofthe method, can communicate with the second database system. Since,following execution, the contents of the data are identical in bothdatabase systems, it is always possible to fall back on the firstdatabase system in the event of problems (backup). The application'sinactivity which is required for structure changes occurs after themethod has been executed, in which case the inventive method itself nolonger requires any down times.

[0011] In accordance with claim 1, the invention relates to a method forchanging the data structure which an application program in a computersystem uses to access database systems. The method is characterized bythe following method steps:

[0012] the application program communicates with a first database systemin order to store entries in a source table which has a first datastructure;

[0013] a destination table is created in the first database system, thedestination table having a second data structure which is different thanthe first data structure;

[0014] the type of change is recorded for those entries in the sourcetable which are changed when the application program communicates withthe source table;

[0015] the destination table is copied to a copy of the destinationtable in a second database system, the second data structure beingretained in the copy of the destination table;

[0016] the source table with its entries is copied to a copy of thesource table in the second database system, the first data structurebeing retained in the copy of the source table;

[0017] the entries in the copy of the source table are converted fromthe first data structure to the second data structure, the convertedentries being stored in the copy of the destination table; and

[0018] the changed entries in the source table are adjusted to the copyof the source table, the changed entries being copied from the sourcetable as changed entries to the copy of the source table.

[0019] Options are the continuous execution of the communication stepand the cyclic repetition of the conversion and adjusting steps, and thetermination of the repetition under at least one of the followingconditions: (a) the number of changed entries in the source table hasundershot a prescribed number; (b) the time required for executing theconversion and adjusting steps undershoots a prescribed limit value.Another option is the inclusion of the copying steps in the repetition.One option is the additional step of keeping the copy of the destinationtable, executed after the conversion step. One option is for therecording step to involve generation of a recording in the firstdatabase system.

[0020] In accordance with claim 7, the invention relates to a computersystem for changing the data structure which an application program in acomputer system uses to access database systems. The computer system ischaracterized by:

[0021] a first data path as means for the application program tocommunicate with a first database system in order to store entries in asource table which has a first data structure;

[0022] a table creator as means for creating a destination table in thefirst database system, the destination table having a second datastructure which is different than the first data structure;

[0023] a change identifier and second and third data paths as means forrecording the type of change for those entries in the source table whichare changed when the application communicates with the source table;

[0024] a fourth data path as means for copying the destination table toa copy of the destination table in the second database system, thesecond data structure being retained in the copy of the destinationtable;

[0025] a fifth data path as means for copying the source table with itsentries to a copy of the source table in a second database system, thefirst data structure being retained in the copy of the source table;

[0026] a converter and sixth and seventh data paths as means forconverting the entries in the copy of the source table from the firstdata structure to the second data structure, the converted entries beingstored in the copy of the destination table; and

[0027] an adjuster and eighth and ninth data paths as means foradjusting the changed entries in the source table to the copy of thesource table, the changed entries being copied from the source table aschanged entries to the copy of the source table.

[0028] In accordance with claim 8, the invention relates to a computerprogram product for changing the data structure which an applicationprogram in a computer system uses to access database systems. Thecomputer program product contains processor instructions and ischaracterized by:

[0029] processor instructions for the application program to communicatewith a first database system in order to store entries in a source tablewhich has a first data structure;

[0030] processor instructions for creating a destination table in thefirst database system, the destination table having a second datastructure which is different than the first data structure;

[0031] processor instructions for recording the type of change for thoseentries in the source table which are changed when the applicationprogram communicates with the source table;

[0032] processor instructions for copying the destination table to acopy of the destination table in the second database system, the seconddata structure being retained in the copy of the destination table;

[0033] processor instructions for copying the source table with itsentries to a copy of the source table in a second database system, thefirst data structure being retained in the copy of the source table;

[0034] processor instructions for converting the entries in the copy ofthe source table from the first data structure to the second datastructure, the converted entries being stored in the copy of thedestination table; and

[0035] processor instructions for adjusting the changed entries in thesource table to the copy of the source table, the changed entries beingcopied from the source table as changed entries to the copy of thesource table.

[0036] In accordance with claim 9, the invention relates to a method forchanging the data structure which an application program in a computersystem uses to access database systems. The method is characterized bythe following method steps:

[0037] while the application program is communicating with a firstdatabase system in order to store entries in a source table which has afirst data structure, the type of change is recorded for those entrieswhich are changed;

[0038] the source table with its entries is copied to a copy of thesource table in the second database system, the first data structurebeing retained in the copy of the source table;

[0039] a target table is generated in the second database system, thetarget table having a second data structure which is different than thefirst data structure;

[0040] the entries in the copy of the source table are converted fromthe first data structure to the second data structure, the convertedentries being stored in the target table;

[0041] the changed entries in the source table are adjusted to the copyof the source table, the changed entries being copied from the sourcetable as changed entries to the copy of the source table; and

[0042] the conversion and adjusting steps are repeated.

[0043] Subclaims relate to preferred embodiments of the invention.Optionally, computer system and computer program product are operated asdescribed above: continuous execution of the communication process,cyclic repetition of the conversion and adjusting processes, terminationof the repetition under at least one of the following conditions: (a)and (b), inclusion of the copying process in the repetition, keeping ofthe copy of the destination table, and recording in the first databasesystem.

BRIEF DESCRIPTION OF THE DRAWINGS

[0044]FIG. 1 shows a simplified block diagram of an inventive computernetwork system;

[0045]FIG. 2 shows a simplified flowchart of an inventive method in afirst exemplary embodiment;

[0046]FIG. 3 shows a simplified block diagram of the function groupswhich execute the method shown in FIG. 2;

[0047]FIGS. 4-10 show simplified block diagrams of the function groupsfor each method step; and

[0048]FIG. 11 shows the simplified flowchart of the inventive method ina second exemplary embodiment.

DETAILED DESCRIPTION OF THE INVENTION

[0049] In the description below, examples of content are identified byapostrophes ''. The word “preferably” as an indication of advantageousbut not necessary embodiments is abbreviated to “prfby”. A summary ofreference numerals and elements in the drawings can be found in front ofthe claims.

[0050]FIG. 1 shows a simplified block diagram of a computer networksystem 999 having a multiplicity of computers (or 90 q, q=0 . . . Q-1, Qarbitrary).

[0051] The computers 900-902 are connected via a network 990. Thecomputer 900 comprises a processor 910, a memory 920, a bus 930 and,optionally, an input device 940 and an output device 950 (input deviceand output device produce the user interface 960). The invention is inthe form of a computer program product (CPP) 100 (or 10 q, where q=0 . .. Q-1, Q arbitrary), in the form of a program carrier 970 and in theform of a program signal 980. These components are referred to below asprogram. The elements 100 and 910-980 of the computer 900 collectivelyillustrate the corresponding elements 10 q and 91 q-91 q (shown for q=0in the computer 90 q).

[0052] The computer 900 is, by way of example, a conventional personalcomputer (PC), a multiprocessor computer, a mainframe computer, aportable or fixed PC or the like.

[0053] The processor 910 is, by way of example, a central processor(CPU), a microcontroller (MCU), or a digital signal processor (DSP).

[0054] The memory 920 symbolizes elements which store data andinstructions either temporarily or permanently. Although the memory 920is shown as part of the computer 900 to assist understanding, the memoryfunction can also be implemented at another point in the network 990,for example in the computers 901/902 or in the processor 910 itself(e.g. cache, register). The memory 920 can be a read only memory (ROM),a random access memory (RAM) or a memory having other access options.The memory 920 is physically implemented on a computer-readable programcarrier, for example on:

[0055] (a) a magnetic carrier (hard disk, diskette, magnetic tape);

[0056] (b) an optical carrier (CD-ROM, DVD);

[0057] (c) a semiconductor carrier (DRAM, SRAM, EPROM, EEPROM); or onany other carrier (e.g. paper).

[0058] Optionally, the memory 920 is distributed over various carriers.Parts of the memory 920 can be fitted on a permanent or replaceablebasis. For the purposes of reading and writing, the computer 900 usesknown means such as disk drives or tape drives.

[0059] The memory 920 stores support components, such as a Bios (BasicInput Output System), an operating system (OS), a program library, acompiler, an interpreter or a word processing program. Supportcomponents are commercially available and can be installed on thecomputer 900 by persons skilled in the art. To assist understanding,these components are not shown.

[0060] CPP 100 comprises program instructions and, optionally, datawhich prompt the processor 910, inter alia, to execute the method steps430-450 in the present invention. The method steps are explained laterin detail. In other words, the computer program 100 defines theoperation of the computer 900 and its interaction with the networksystem 999. Without intending any restriction in this context, CPP 100can, by way of example, be in the form of source code in any desiredprogramming language and in the form of binary code in compiled form. Aperson skilled in the art is capable of using CPP 100 in connection withany of the support components explained above (e.g. compiler,interpreter, operating system).

[0061] Although CPP 100 is shown as being stored in the memory 920, CPP100 can alternatively be stored at any other point. CPP 100 can likewisebe stored on the program carrier 970.

[0062] The program carrier 970 is shown outside the computer 900. Totransfer CPP 100 to the computer 900, the carrier 970 can be introducedinto the input unit 940. The carrier 970 is implemented in the form ofany desired, computer-readable carrier, such as in the form of one ofthe carriers explained above (cf. memory 920). Generally, the carrier970 is a product which contains a computer-readable carrier storingcomputer-readable program code means which are used to execute the themethod of the present invention. In addition, the program signal 980 canlikewise comprise CPP 100. The signal 980 is transferred to the computer900 via the network 990.

[0063] The detailed description of CPP 100, carrier 970 and signal 980can be applied to the program carriers 971/972 (not shown), to theprogram signal 981/982, and to the computer program product (CPP)101/102 (not shown), which is executed by the processor 911/912 (notshown) in the computer 901/902.

[0064] The input device 940 represents a device which provides data andinstructions for processing by the computer 900. By way of example, theinput device 940 is a keyboard, a pointer device (mouse, trackball,cursor arrows), a microphone, a joystick, a scanner. Although theexamples are all devices with human interaction, the device 940 can alsooperate without human interaction, such as a wireless receiver (e.g.using a satellite antenna or terrestrial antenna), a sensor (e.g. athermometer), a counter (e.g. a quantity counter in a factory). Theinput device 940 can likewise be used for reading the carrier 970.

[0065] The output device 950 represents a device which displaysinstructions and data which have already been processed. Examplesthereof are a monitor or other display (cathode ray tube, flat screen,liquid crystal display, loudspeaker, printer, vibrating alarm). In asimilar manner to the case of the input device 940, the output device950 communicates with the user, but it can likewise communicate withother computers.

[0066] The input device 940 and the output device 950 can be combined ina single device. Both devices 940, 950 can be provided optionally.

[0067] The bus 930 and the network 990 represent logical and physicalconnections which transfer both instructions and data signals.Connections within the computer 900 are usually referred to as bus 930,and connections between the computers 900-902 are referred to as network990. The devices 940 and 950 are connected to the computer 900 by thebus 930 (as shown) or optionally via the network 990. The signals in thecomputer 900 are predominantly electrical signals, whereas the signalsin the network can be electrical, magnetic and optical signals or elsewireless radio signals.

[0068] Network environments (such as network 990) are normal in offices,company-wide computer networks, intranets and on the Internet (i.e.World Wide Web). The physical distance between the computers in thenetwork is of no significance. Network 990 can be a wireless network ora wired network. Possible examples of implementations of the network 990which may be mentioned here are as follows: a local area network (LAN),a wide area network (WAN), an ISDN network, an infrared link (IR), aradio link, such as the Universal Mobile Telecommunication System(UMTS), or a satellite link.

[0069] Transfer protocols and data formats are known. Examples thereofare: TCP/IP (Transmission Control Protocol/Internet Protocol), HTTP(Hypertext Transfer Protocol), URL (Unique Resource Locator), HTML(Hypertext Markup Language), XML (Extensible Markup Language), WML(Wireless Application Markup Language), etc.

[0070] Interfaces for coupling the individual components are likewiseknown. To simplify matters, the interfaces are not shown. An interfacecan be, by way of example, a serial interface, a parallel interface, agame port, a universal serial bus (USB), an internal or external modem,a graphics adapter or a sound card.

[0071] Computer and program are closely related. In the description,expressions such as “the computer provides” and “the program provides”are normal abbreviations which describe program-controlled method stepsin the computer.

[0072]FIG. 2 shows the simplified flowchart of the inventive method 500in a first exemplary embodiment. The method 500 contains the followingmethod steps: communicating 510, creating 520, recording 530, copying540 and 550, converting 560, keeping 570 (optionally), adjusting 580 andrepeating 590 (optionally).

[0073] For the purpose of illustration, a time axis is shownhorizontally: starting times Sn, ending times En and time intervals Tnfollow the numbering of the reference numerals 5n0. By way of example,converting 560 starts at S6, lasts for T6 and ends at E6. In thedescription below, it has been agreed that the symbol “>” means “laterthan”, the symbol “<” means “earlier than”, and the symbol “=” means“essentially simultaneously”. Method steps shown vertically above oneanother are prfby executed simultaneously.

[0074] The reference, number 512 denotes communication 510, where asource table 310 (cf. FIG. 6) is modified (at the times X1>S3, X2>S3,X3>S3). The steps 520, 540 and 550 require execution times T2, T4, T5which are normally far below the execution times T1, T3 and T6 for theother steps 510, 530 and 560. An advantage is the execution of the steps530-590 while the communication process 510 can be continued essentiallyunchanged. The method 500 is described after the description of thefunction groups which now follows.

[0075]FIG. 3 shows a simplified block diagram of the function groupswhich execute the method shown in FIG. 2: application program 200(below: application 200), first database system 300, second databasesystem 400, and computer program product (CPP) 100 (cf. FIG. 1) withcomponents 101-133.

[0076] In one preferred exemplary embodiment, the function groups areimplemented as follows: application 200 from computer 900 (withprocessor 910), database system 300 from computer 901, and databasesystem 400 from computer 902.

[0077] To simplify matters, the network 990 is not shown. The databasesystems 300 and 400, with which a person skilled in the art is familiar,contain operating systems and memory units.

[0078] According to the invention, the execution of the method 500involves forming some function groups afresh; it is not necessary forthem to exist before execution.

[0079] In the first database system 300, the source table 310 containsthe entries 315 (i.e. data records) and the changed entries 316, whichare all stored in a first data structure 312 (FIGS. 4, 6). The firstdatabase system 300 also contains a destination table 320 (target table,also: shadow table) having a second data structure 322 (FIG. 5). Thefirst database system 300 also contains a recording 330 for storing thetypes of change 335 (types of change, FIG. 6), which describe thechanges in the source table 310.

[0080] The second database system 400 contains a copy of the sourcetable 410 (copy source table 410) and a copy of the destination table420 (copy destination table 420), having the first 412 and second 422data structures, respectively (FIG. 7). The copy source table 410 hasentries 415 and changed entries 416; the copy destination table 420 hasentries 425 and changed entries 426 (FIG. 8).

[0081] Upon execution of the method 500, table entries are transferredfrom the source table 310, having been restructured without any changeof content, to the copy of the destination table 420 and are thenavailable to the application 200 (or else to an altered application).

[0082] Both database systems 300 and 400 can be of the same type and inthe same version. The two data structures are defined by externalcommands and the database systems.

[0083] The description allows a person skilled in the art to adapt themethod 500 to a plurality of tables as well, for example by means ofparallel processing.

[0084] Inventively provided means for executing the method (collectivelyreferred to as CPP 100) are coded as program instructions for aprocessor. It is of no importance to the implementation of the presentinvention whether these means are produced by the same or by differentprocessors. Prfby, the means are produced by the same processor 910 inthe computer 900 as also executes the application 200.

[0085] The means provided in the exemplary embodiment are as follows:table creator 105, data path 101 application for source table, FIGS.4-5), change identifier 102 (FIG. 6), data path 103 (change identifierfor recording), data path 111 (destination table for copy source table,FIG. 7), data path 112 (source table for copy source table, FIG. 7),converter 120 (FIG. 8), data path 121 (copy source table for converter,FIG. 8), data path 122 (converter for copy destination table, FIG. 8),adjuster 130 (FIG. 9), data path 131 (recording for adjuster, FIG. 9),data path 131 (source table for adjuster, FIG. 9), and data path 132(adjuster for copy source table, FIG. 9).

[0086] The data paths are used for transferring data. A person skilledin the art is able to provide signals in the network which transport thedata on the basis of the paths. The data paths are normally activated byprocessor instructions; these instructions normally contain controlinstructions for database systems 300 and 400 like SQL instructions(structured query language). Other implementation options are, by way ofexample: split mirror technique and export/import instructions. Thesplit mirror technique is explained in a series of publications, interalia in “Siegfried Schmidt: ‘SAP R/3 Storage Management, Split MirrorBackup Recovery on IBM’s Enterprise Storage Server (ESS), SAPAktiengesellschaft 1999”. A person skilled in the art is able to applythe techniques described. The method 500 for changing the data structurewhich the application 200 in the computer system 999 uses to accessdatabase systems is characterized by execution of the following steps:

[0087] the application 200 communicates 510 (using data path 101) withthe first database system 300 in order to store entries 315 in thesource table 310, which has the first data structure 312;

[0088] the destination table 320 is created 520 (using table creator105) in the first database system 300, the destination table 320 havingthe second data structure 322, which is different than the first datastructure 312;

[0089] the type of change 335 is recorded 530 (using change identifier102 and data path 103) for those entries 316 in the source table 310which are changed when the application 200 communicates 510 with thesource table 310 (cf. 512);

[0090] the destination table 320 is copied 540 (using data path 111) tothe copy destination table 420 in the second database system 400, thesecond data structure 322, 422 being retained in the copy destinationtable 420;

[0091] the source table 310 with its entries 315, 316 is copied 550(using data path 112) to a copy source table 410 in the second databasesystem 400, the first data structure 312, 412 being retained in the copysource table 410;

[0092] the entries 415 in the copy source table 410 are converted 560(using converter 120 and data paths 121, 122) from the first datastructure 412 to the second data structure 422, the converted entries425 being stored in the copy destination table 420; and

[0093] the changed entries 316 in the source table 310 are adjusted 580(using adjuster 130 and data paths 131, 132) to the copy source table410, the changed entries 316 being copied from the source table 310 aschanged entries 416 to the copy source table 410.

[0094]FIGS. 4-10 show simplified block diagrams of the function groups.The illustration follows the inventive method: to illustrate theparticularities, only the function groups which are involved in themethod step described are therefore shown in each case.

[0095]FIGS. 4-10 use data structures based on the example of postcodes.The first data structure 312, 412 defines a maximum of 4 digits, atleast 2 of which digits are in use (e.g. ‘69’); the second datastructure 322, 422 defines 7 alphanumeric characters, which are all inuse (e.g. ‘D-69000’). To identify every single table entry 315, 316,415, 416, 425, 426, each entry is assigned a key, for example, acrossthe tables. A person skilled in the art is able to do this withoutrequiring further explanation. FIGS. 4-10 show the tables 310, 320, 410and 420 with key columns 313, 323, 413 and 423. The keys themselves aredenoted by digits 1, 2, 3 and 4.

[0096] Reference numerals and keys identify every single entry. In thedescription, the key is appended to the reference numeral ifappropriate: thus, in the description for FIG. 6, for example, for entry316-2 with content ‘1091’.

[0097] The small number of keys serves to simplify the illustration. Theinventive method can advantageously be used for tables with moreentries.

[0098]FIG. 4 shows the communication process 510, where the application200 stores the entries 315 (‘69’, ‘96’, and ‘109’) in the source table310 (with data structure 312). The application 200 determines whichentries 315 are stored; the converse case of reading entries from thesource table 310 into the application 200 is not fundamental to theinvention and is therefore not considered in the present case. The datapath 101 from the application 200 to the source table 310 is normallyalready present in data processing systems and can be adopted inunaltered form. As mentioned in the introduction, the communicationprocess 510 normally occurs over a long period of time in which theapplication 300 or the database system 300 are not modified. Only thedata are modified.

[0099]FIG. 5 shows the creation process 520 for the destination table320. Table creator 105 is the means to this end. The destination table320 prfby does not store any entries. The second data structure 322 (for7 alphanumeric characters, for example) is already being stipulated,however. The creation process 520 is executed in parallel with thecommunication process 510. The application 200 continues to communicatewith the database system 300. During the creation process 520, the datapath 101 remains unaltered. The table creator 105 is implemented, by wayof example, using the SQL instruction “create tabledestination_table_320 (postcode varchar (7))”.

[0100]FIG. 6 shows the recording process 530 effected in parallel withthe communication process 510. The application 200 is known to promptread and write access operations to the source table 310 during thecommunication process 510 by virtue of the application 200 sendinginstructions 104 to the database system 300 via path 101. In FIG. 6,these instructions 104 are denoted by the letters D (delete), U(update), I (insert) and R (read). The change identifier 102 forwardstypes of change 335 for those instructions 104 which prompt write accessoperations (e.g. only D, U, I, not R) to the recording 330 via data path103. The change identifier 102 can be produced using a database triggerknown to a person skilled in the art.

[0101] Entries in the source table 310 which are changed (cf. 512) bythe communication process 510 in line with S3 (start of the recordingprocess 530) are denoted by 316. The types of change 335 are assigned tothe key for the changed entries 316. Normally, every changed entry 316has a type of change 335. In connection with the present description,the types of change 335 are abbreviated using letters. Types of change335 are, by way of example, D (delete) for entries which are deletedfrom the source table 310 (e.g. ‘96’ for key 2); U (update) for entrieswhich are modified in the source table 310 (e.g. ‘109’ to ‘1091’ for key3); I (insert) for entries which are newly added to the source table 310(e.g. entry 316-4 ‘111’ for key 4). In the example, the key column 313is used both for the source table 310 and for the recording 330.

[0102] A person skilled in the art is able to implement alternatives:(a) recordings separate from the source table 310 for D, U and I,respectively, (b) a recording which is separate from the source table310 for D, U and I, indicating the keys (log table) etc. As FIG. 6shows, the recording process 530 generates the recording 330 prfby inthe first database system 300.

[0103] For the type of change U, the change identifier 102 can beproduced, by way of example, using the following SQL instructions“create trigger change_identifier_102, before update of entries_315 insource_table 310 on source_table_310 begin . . . (set type of change toU) . . . end”.

[0104]FIG. 7 shows the copying process 540, where the destination table320 is copied to the second database system 400 as copy destinationtable 420 via the data path 111. The copying process 540 prfby directlyfollows the start of the recording process 530, and the copying process540 prfby takes place in parallel with the copying process 550. Sincethe destination table 320 contains no entries, only the structure iscopied: the second data structure 322, 422 is retained. In the example,the copy destination table 420 is ready to hold entries with 7alphanumeric characters.

[0105]FIG. 7 also shows the copying process 550, where the source table310 is copied to the second database system 400 as copy source table 410via the data path 112. Entries 315-1 ‘69’, 315-2 ‘96’ and 315-3 ‘109’(cf. FIG. 6) are transferred unaltered as entries 415-1, 415-2 and415-3. Since the copying process 550 prfby directly follows the start ofthe recording process 530 (i.e. S5=S3), any changes in the source table310 would actually be detected in recording 330 during the copyingprocess. The first data structure 312, 412 is retained. Since, in theexample, changes in the source table 310 do not occur until after thetime E5 (that is to say after the copying process 550), entries 316 (cf.FIG. 6) are not yet transferred to the copy source table 410. In otherwords, the changed entries 316 are not yet available during (T5) thecopying process 550. It is an advantage of the invention that theseentries 316 are taken into account in later method steps.

[0106] A suitable technique for the copying processes 540 and 550 is theknown split mirror technique, which, during the copying process, permitsread and write access operations to the table which is to be copied.This technique advantageously allows the communication process 510 atthe same time.

[0107]FIG. 8 shows the conversion process 560 for the entries 415 in thecopy source table 410 from the first data structure 412 to the seconddata structure 422, the converted entries 425 being stored in the copydestination table 420. The conversion process 560 takes place via datapath 121, converter 120 and data path 122. The conversion process 560takes place within the second database system 400.

[0108] The data path 121 transfers the entries 415 to the converter 120;the converter 120 converts the entries 415 to the second data structure422 on the basis of a predetermined rule (e.g. append letter withhyphen, fill with zeros), and the data path transfers the convertedentries 425 to the copy destination table 420. The conversion process560 normally requires a period of time T6 for which down times for theapplication 200 would not be economically feasible. It is an advantageof the present invention that the conversion process 560 can be executedwithout interrupting communication 510.

[0109]FIG. 9 shows the additional step of keeping 570 the copydestination table 420, executed after conversion process 560. In thiscontext, writing to the copy destination table 420 via the data path 111and reading from the copy destination table 420 via the data path 122are prevented. In other words, the data paths 111 and 122 have beendeactivated.

[0110]FIG. 9 shows the adjusting process 580 for the changed entries 316in the source table 310 to match the copy source table 410. The changedentries 316 from the source table 310 (cf. FIG. 6 ‘96’ deleted, ‘1091’and ‘111’) are copied as changed entries 416 to the copy source table410. In this case, the following operations are performed in the copysource table 410: deletions (D, ‘96’ for key 2), modifications (U,‘1091’ for key 3) and additions (I, ‘111’ for key 4).

[0111] In this case, the recording 330 transferred to the adjuster 130via the data path 131 (2D, 3U, 4I) is prfby taken into account. Theadjuster 130 evaluates the recording 330 and forwards the changedentries 316 via the data paths 132 and 133. As indicated by thedouble-headed arrow in path 131, the adjuster 130 optionally prompts achange to the recording 330 (FIG. 7) for entries which have already beentransferred. Types of change 335 which have already been taken intoaccount are prfby deleted or deactivated.

[0112] Optionally, to simplify the method, all the entries 315, 316 canbe copied to 415, 416 during the adjusting process 580. This is notnecessary, however.

[0113]FIG. 10 shows how the changed entries 416 are transferred from thecopy source table 410 as entries 426 to the copy destination table byvirtue of the cyclic repetition 590 of the conversion 560 and adjusting580 steps. In the example: the entry 425-1 (‘D-69000’ for key 1) remainsunchanged, the entry 425-2 (‘D-96000’, cf. FIG. 8) has been deleted, theentry 426-3 (‘D-10910’) has been changed, and the entry 426-4(‘D-11100’) has been added.

[0114] The repetition 590 is terminated as soon as one of the followingconditions has been satisfied:

[0115] (a) The number of changed entries 316 in the source table 310 hasundershot a prescribed number.

[0116] (b) The time required by the processor 910 for executing theconversion 560 and adjusting 580 steps undershoots a prescribed limitvalue.

[0117] (c) Changes become necessary in the database system 300 which arenot connected to method 500 but which require that execution of theapplication 200 be interrupted anyway.

[0118] Optionally, the copying steps 540 and 550 can be included in therepetition 590, the copying process being advantageous for subregions ofthe tables. These subregions are advantageously determined by therecording 330.

[0119] It is advantageous that, when the method 500 is executed, thecommunication process 510 between application 200 and first databasesystem 300 is continued essentially uninterrupted. In this case, it ispossible for the application 200 to write further entries 316 to thesource table 310. When the method has been executed, the communicationis briefly interrupted in order to transfer these further changedentries 316 to the copy destination table 420. In this case, a personskilled in the art makes use, by way of example, of the elementsadjuster 130, converter 120 and of the associated data paths.

[0120]FIG. 11 shows the simplified flowchart of the inventive method 501in a second exemplary embodiment. The description for FIGS. 1-10 alsoapplies to the method 501. The method 501 is derived from the method500; in both methods, the steps of communication 510/511, recording530/531, copying 550/551, converting 560/561, adjusting 580/581 andrepeating 590/591 are the same; the steps of creating 520 and copying540 in the method 500 are combined to produce the step of generating 525in the method 501. In the first database system 300, no furtherdestination table is created, and no further destination table is copiedeither, but rather a target table 420 is created directly in the seconddatabase system 400. The target table 420 in the method 501 correspondsto the copy destination table 420 in the method 500. The method has thefollowing method steps:

[0121] while the application program 200 is communicating 511 (usingdata path 101) with the first database system 300 in order to storeentries 315 in the source table 310 (first data structure 312), the typeof change 335 for those entries 316 which are changed is recorded 531(using change identifiers 102 and 103);

[0122] the source table 310 with its entries 315, 316 is copied 551(using data path 112) to the copy source table 410 in the seconddatabase system 400, the first data structure 312, 412 being retained inthe copy of the source table 410;

[0123] the target table 420 is generated 525 (using table generator, notshown since similar to creator 105) in the second database system 400,the target table 420 having the second data structure 422, which isdifferent than the first data structure 312;

[0124] the entries 415 in the copy source table 410 are converted 561(using converter 120 and data paths 121, 122) from the first datastructure 412 to the second data structure 422, the converted entries425 being stored in the target table 420;

[0125] the changed entries 316 in the source table 310 are adjusted 581(using adjuster 130 and data paths 131, 132) to the copy of the sourcetable 410, the changed entries 316 being copied from the source table310 as changed entries 416 to the copy source table 410; and theconversion 561 and adjusting 581 steps are repeated 591 (terminationunder the conditions described above).

[0126] As a summary of the two exemplary embodiments 500/501, thepresent invention is described as a computer system 900 for changing thedata structure which the application program 200 in the computer system999 uses to access database systems 300, 400. The computer system 900 ischaracterized by:

[0127] a first data path 101 as means for the application program 200 tocommunicate 510, 511 with the first database system 300 in order tostore entries 315 in the source table 310 which has the first datastructure 312;

[0128] a table creator 105 as means for creating 520 the destinationtable 320 (first exemplary embodiment) in the first database system 300(destination table 320 having data structure 322 which is different thandata structure 312) or as means for generating 525 the target table 420;

[0129] a change identifier 102 and second and third data paths 102, 103as means for recording 530/531 the type of change 335 for those entries316 in the source table 310 which are changed when the application 200communicates 510/511 with the source table 310;

[0130] a fourth data path 111 as means for copying 540 the destinationtable 320 to the copy destination table 420 in the second databasesystem 400, the second data structure 322, 422 being retained in thecopy destination table 420 (only first exemplary embodiment 500);

[0131] a fifth data path 112 as means for copying 550/551 the sourcetable 310 with its entries 315, 316 to the copy source table 410 in thesecond database system 400, the first data structure 312, 412 beingretained in the copy source table 410;

[0132] a converter 120 and sixth and seventh data paths 121, 122 asmeans for converting 560/561 the entries 415 in the copy source table410 from the first data structure 412 to the second data structure 422,the converted entries 425 being stored in the copy destination table 420(first example) or in the target table 420 (second example); and

[0133] an adjuster 130 and eighth and ninth data paths 131, 132 as meansfor adjusting 580/581 the changed entries 316 in the source table 310 tothe copy source table 410, the changed entries 316 being copied from thesource table 310 as changed entries 416 to the copy source table 410.

[0134] As a summary of the two exemplary embodiments 500/501, thepresent invention is described as a computer program product 100 forchanging the data structure which the application program 200 in thecomputer system 999 uses to access database systems 300, 400. Thecomputer program product 100 has processor instructions and ischaracterized by:

[0135] processor instructions for the application program 200 tocommunicate 510/511, 101 with the first database system 300 in order tostore entries 315 in the source table 310 which has a first datastructure 312;

[0136] processor instructions for creating 520, 105 the destinationtable 320 in the first database system 300, the destination table 320having a second data structure 322 which is different than the firstdata structure 312 (first example 500) or alternatively processorinstructions for generating 525 the target table 420 in the seconddatabase system 400, the target table 420 having a second data structure422, which is different than the first data structure 312, 412 (secondexample 501);

[0137] processor instructions for recording 530/531, 102, 103 the typeof change 335 for those entries 316 in the source table 310 which arechanged 512 when the application program 200 communicates 510, 511, 101with the source table 310;

[0138] processor instructions for copying 540, 111 the destination table320 to the copy destination table 420 in the second database system 400,the second data structure 322, 422 being retained in the copy of thedestination table 420 (first example);

[0139] processor instructions for copying 550/551, 112 the source table310 with its entries 315, 316 to the copy source table 410 in the seconddatabase system 400, the first data structure 312, 412 being retained inthe copy source table 410;

[0140] processor instructions for converting 560/561, 120, 121, 122 theentries 415 in the copy source table 410 from the first data structure412 to the second data structure 422, the converted entries 425 beingstored in the copy of the destination table 420 (or target table 420);and

[0141] processor instructions for adjusting 580/581, 130, 131, 132 thechanged entries 316 in the source table 310 to the copy source table410, the changed entries 316 being copied from the source table 310 aschanged entries 416 to the copy of the source table 410.

[0142] A person skilled in the art is able to modify the presentinvention without departing from the scope thereof.

[0143] List of Reference Numerals

[0144] Numeral Element

[0145]100 Computer program product (CPP)

[0146]101 Data path from application to source table

[0147]102 Change identifier

[0148]103 Data path from change identifier to recording

[0149]104 Instructions

[0150]105 Table creator

[0151]111 Data path from destination table to copy source table

[0152]112 Data path from source table to copy source table

[0153]120 Converter

[0154]121 Data path from copy source table to converter

[0155]122 Data path from converter to copy source table

[0156]130 Adjuster

[0157]131 Data path from recording to adjuster

[0158]131 Data path from source table to adjuster

[0159]132 Data path from adjuster to copy source table

[0160]200 Application

[0161]300 First database system

[0162]310 Source table

[0163]312, 412 First data structure

[0164]313, 323 Key column

[0165]315 Entries in source table

[0166]316 Changed entries in source table

[0167]320 Destination table

[0168]322, 422 second data structure

[0169]330 Recording

[0170]335 Types of change

[0171]400 Second database system

[0172]410 Copy source table

[0173]413, 423 key column

[0174]415 Entries in copy source table

[0175]416 Changed entries in copy source table

[0176]420 Copy destination table (target table)

[0177]425 Entries in copy destination table

[0178]426 Changed entries in copy destination table

[0179]500, 501 Methods

[0180]510, 511 Communication process

[0181]512 Communication

[0182]520 Creation process

[0183]525 Generation process

[0184]530, 531 Recording process

[0185]540 Copying process

[0186]550, 551 Copying process

[0187]560, 561 Conversion process

[0188]570 Keeping process

[0189]580, 581 Adjusting process

[0190]590, 591 Repetition process

[0191]910 Processor

[0192]920 Memory

[0193]930 Bus

[0194]940 Input device

[0195]950 Output device

[0196]960 User interface

[0197]970 Program carrier

[0198]980 Program signal

[0199]990 Network

1. A method for changing the data structure which an application programin a computer system uses to access database systems, the methodcomprising the following method steps: the application programcommunicates with a first database system in order to store entries in asource table which has a first data structure; a destination table iscreated in the first database system, the destination table having asecond data structure which is different than the first data structure;the type of change is recorded for those entries in the source tablewhich are changed when the application program communicates with thesource table; the destination table is copied to a copy of thedestination table in a second database system, the second data structurebeing retained in the copy of the destination table; the source tablewith its entries is copied to a copy of the source table in the seconddatabase system, the first data structure being retained in the copy ofthe source table; the entries in the copy of the source table areconverted from the first data structure to the second data structure,the converted entries being stored in the copy of the destination table;and the changed entries in the source table are adjusted to the copy ofthe source table, the changed entries being copied from the source tableas changed entries to the copy of the source table.
 2. The method asclaimed in claim 1, wherein the communication step is continuouslyexecuted and the conversion and adjusting steps are cyclically repeated.3. The method as claimed in claim 2, wherein the conversion andadjusting steps are terminated under at least one of the followingconditions: (a) the number of changed entries in the source table hasundershot a prescribed number; and (b) the time required for executingthe conversion and adjusting steps undershoots a prescribed limit value.4. The method as claimed in claim 3, wherein the copying step iscyclically repeated.
 5. The method as claimed in claim 1, wherein a stepof keeping the copy of the destination table is executed after theconversion step.
 6. The method as claimed in claim 1, where therecording step involves generation of a record in the first databasesystem.
 7. A computer system for changing the data structure which anapplication program in a computer system uses to access databasesystems, the computer system comprising: a first data path as means forthe application program to communicate with a first database system inorder to store entries in a source table which has a first datastructure; a table creator as means for creating a destination table inthe first database system, the destination table having a second datastructure which is different than the first data structure; a changeidentifier and second and third data paths as means for recording thetype of change for those entries in the source table which are changedwhen the application communicates with the source table; a fourth datapath as means for copying the destination table to a copy of thedestination table in the second database system, the second datastructure being retained in the copy of the destination table; a fifthdata path as means for copying the source table with its entries to acopy of the source table in a second database system, the first datastructure being retained in the copy of the source table; a converterand sixth and seventh data paths as means for converting the entries inthe copy of the source table from the first data structure to the seconddata structure, the converted entries being stored in the copy of thedestination table; and an adjuster and eighth and ninth data paths asmeans for adjusting the changed entries in the source table to the copyof the source table, the changed entries being copied from the sourcetable as changed entries to the copy of the source table.
 8. A computerprogram product for changing the data structure which an applicationprogram in a computer system uses to access database systems, thecomputer program product having processor instructions, comprising:processor instructions for the application program to communicate with afirst database system in order to store entries in a source table whichhas a first data structure; processor instructions for creating adestination table in the first database system, the destination tablehaving a second data structure which is different than the first datastructure; processor instructions for recording the type of change forthose entries in the source table which are changed when the applicationprogram communicates with the source table; processor instructions forcopying the destination table to a copy of the destination table in asecond database system, the second data structure being retained in thecopy of the destination table; processor instructions for copying thesource table with its entries to a copy of the source table in thesecond database system, the first data structure being retained in thecopy of the source table; processor instructions for converting theentries in the copy of the source table from the first data structure tothe second data structure, the converted entries being stored in thecopy of the destination table; and processor instructions for adjustingthe changed entries in the source table to the copy of the source table,the changed entries being copied from the source table as changedentries to the copy of the source table.
 9. A method for changing thedata structure which an application program in a computer system uses toaccess database systems, the method comprising the following methodsteps: while the application program is communicating with a firstdatabase system in order to store entries in a source table which has afirst data structure, the type of change is recorded for those entrieswhich are changed; the source table with its entries is copied to a copyof the source table in the second database system, the first datastructure being retained in the copy of the source table; a target tableis generated in the second database system, the target table having asecond data structure which is different than the first data structure;the entries in the copy of the source table are converted from the firstdata structure to the second data structure, the converted entries beingstored in the target table; the changed entries in the source table areadjusted to the copy of the source table, the changed entries beingcopied from the source table as changed entries to the copy of thesource table; and the conversion and adjusting steps are repeated.
 10. Acomputer program product for changing the data structure which anapplication program in a computer system uses to access databasesystems, the computer program product having processor instructionswhich prompts a processor to execute the method as claimed in claim 9.